package com.ruoyi.system.domain;

import java.util.Date;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 桌台次卡规则操作日志对象 table_pass_card_rule_operations
 *
 * @author ruoyi
 * @date 2025-05-23
 */
public class TablePassCardRuleOperations extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 操作记录唯一标识符（自增主键，用于关联日志或分析） */
    private Long id;

    /** 关联的桌台次卡编号（如"WKND-5PASS-2023"） */
    @Excel(name = "关联的桌台次卡编号")
    private String passCardCode;

    /** 操作涉及的门店信息（JSON格式，存储门店名称、编号等） */
    @Excel(name = "操作涉及的门店信息", readConverterExp = "J=SON格式，存储门店名称、编号等")
    private String storeInfo;

    /** 实际被操作的门店编号（如"BJ-CY-001"） */
    @Excel(name = "实际被操作的门店编号")
    private String operatedStoreCode;

    /** 操作类型（枚举值，明确操作意图） */
    @Excel(name = "操作类型", readConverterExp = "枚=举值，明确操作意图")
    private String operationType;

    /** 操作开始时间（精确到秒） */
    @Excel(name = "操作开始时间", readConverterExp = "精=确到秒")
    private Date operationStartTime;

    /** 操作结束时间（若操作未完成可为NULL） */
    @Excel(name = "操作结束时间", readConverterExp = "若=操作未完成可为NULL")
    private Date operationEndTime;

    /** 操作员工信息（JSON格式，存储员工ID、姓名、部门等） */
    @Excel(name = "操作员工信息", readConverterExp = "J=SON格式，存储员工ID、姓名、部门等")
    private String operatorInfo;

    /** 从operator_info提取的员工ID（用于索引） */
    @Excel(name = "从operator_info提取的员工ID", readConverterExp = "用=于索引")
    private String operatorId;

    /** 操作当前状态（默认"进行中"） */
    @Excel(name = "操作当前状态")
    private String operationStatus;

    /** 操作失败时的错误详情（如SQL异常、参数校验失败等） */
    @Excel(name = "操作失败时的错误详情", readConverterExp = "如=SQL异常、参数校验失败等")
    private String errorMessage;

    /** 操作详情（如修改前后的次卡数量、规则变化等） */
    @Excel(name = "操作详情", readConverterExp = "如=修改前后的次卡数量、规则变化等")
    private String operationDetails;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setPassCardCode(String passCardCode)
    {
        this.passCardCode = passCardCode;
    }

    public String getPassCardCode()
    {
        return passCardCode;
    }

    public void setStoreInfo(String storeInfo)
    {
        this.storeInfo = storeInfo;
    }

    public String getStoreInfo()
    {
        return storeInfo;
    }

    public void setOperatedStoreCode(String operatedStoreCode)
    {
        this.operatedStoreCode = operatedStoreCode;
    }

    public String getOperatedStoreCode()
    {
        return operatedStoreCode;
    }

    public void setOperationType(String operationType)
    {
        this.operationType = operationType;
    }

    public String getOperationType()
    {
        return operationType;
    }

    public void setOperationStartTime(Date operationStartTime)
    {
        this.operationStartTime = operationStartTime;
    }

    public Date getOperationStartTime()
    {
        return operationStartTime;
    }

    public void setOperationEndTime(Date operationEndTime)
    {
        this.operationEndTime = operationEndTime;
    }

    public Date getOperationEndTime()
    {
        return operationEndTime;
    }

    public void setOperatorInfo(String operatorInfo)
    {
        this.operatorInfo = operatorInfo;
    }

    public String getOperatorInfo()
    {
        return operatorInfo;
    }

    public void setOperatorId(String operatorId)
    {
        this.operatorId = operatorId;
    }

    public String getOperatorId()
    {
        return operatorId;
    }

    public void setOperationStatus(String operationStatus)
    {
        this.operationStatus = operationStatus;
    }

    public String getOperationStatus()
    {
        return operationStatus;
    }

    public void setErrorMessage(String errorMessage)
    {
        this.errorMessage = errorMessage;
    }

    public String getErrorMessage()
    {
        return errorMessage;
    }

    public void setOperationDetails(String operationDetails)
    {
        this.operationDetails = operationDetails;
    }

    public String getOperationDetails()
    {
        return operationDetails;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("passCardCode", getPassCardCode())
                .append("storeInfo", getStoreInfo())
                .append("operatedStoreCode", getOperatedStoreCode())
                .append("operationType", getOperationType())
                .append("operationStartTime", getOperationStartTime())
                .append("operationEndTime", getOperationEndTime())
                .append("operatorInfo", getOperatorInfo())
                .append("operatorId", getOperatorId())
                .append("operationStatus", getOperationStatus())
                .append("errorMessage", getErrorMessage())
                .append("operationDetails", getOperationDetails())
                .append("createTime", getCreateTime())
                .append("phone", getPhone())
                .toString();
    }
}
